The present invention relates to application software contained on removable storage media. In particular, the present invention relates to a system wherein instructions to configure operating system environmental variables and to load predetermined application software are stored on removable media such that the application and its associated data files are automatically launched for use upon insertion of the removable disk into a removable media drive.
In the beginning of the personal computing era, software applications were simple and small mainly because of limitations in storage and computing power. For example, one of the first widely used software applications, VisiCalc, was only 25 kB in size and was typically run from a floppy disk. Because of these limitations, data files created by VisiCalc were often stored on the same floppy disk as the program file. However, as processing power and capabilities of personal computers increased, additional features were added to software applications to take advantage the increased processing power. These features have lead to a tremendous increase in the size of software applications. For example, Microsoft(copyright) Excel97 now has an executable file that is approximately 5.4 MB, which is an increase of 21,600% over the early VisiCalc spreadsheet software. In addition, this figure fails to account for the shared files that Microsoft(copyright) Excel97 requires for proper execution. Because of the increase in size and complexity of modem software, applications are no longer developed to be executed from a single piece of removable media, and at a minimum, must be partially installed to the computer""s hard disk drive for use.
While modem software applications have greater functionality and are easier to use than their early counterparts, they have created usability problems for end users. A first problem is that managing data files has become increasingly difficult. With personal computer hard drives exceeding 20 GB in storage capacity, users can store almost everything they generate and download. Naming, organizing and differentiating between data files is extremely difficult, particularly in view of the common practice of users to name and save files using cryptic or uninformative names (e.g., today.doc, temp.xls, or junk.txt).
Another problem has been created by the shear number of personal computers an peripherals devices. A typical user may have a computer at home, a computer at work, and a portable computer (e.g., notebook) that he or she uses every day. Thus, if a user wants to use a particular data file(s) on more than one computer, the user must manually copy the data file(s) to a removable disk and either access the data file(s) from the removable disk or copy them to the other computer. In addition, each computer that the user wants to use must have the particular piece of software that generated the data file(s) installed thereon in order to properly access the data. Inevitably, as users move data from one computer to another, data is lost as newer files are overwritten by older versions. Further complicating file management tasks is when the user creates several pieces of removable media containing several versions of the data files and then must figure out which version is the correct version by looking at the time stamps or inspecting the contents of each of the data files. Peripheral devices and their associated software have become numerous and are in many cases difficult to use. In addition, many peripheral devices create data files that must be saved for use by other application software.
There have been some advances in file management. These include file managers and applications that synchronize files between computers to reduce the effort necessary to maintain current versions of data files on multiple computers. However, these programs are severely limited because they typically cannot synchronize files between more than two computers. In addition, the files to be synchronized are often manually selected by the users. Thus, if a particular piece of software creates and access multiple data files, the user must manually select all of the data files for synchronization between two computers, otherwise errors may occur. Often users forget to select a particular data file for synchronization and later find that they are unable to utilize any of the data on another computer. This problem not only affects synchronization programs, but also occurs when users manually copy data files to removable media, in the scenario noted above.
There have been other advances in making computers easier use, such as graphical user interfaces and applications that automatically launch programs contained on removable media. An example of an application that automatically launches another application upon insertion of the removable media into a computer and include the Windows(copyright) xe2x80x9cAutorunxe2x80x9d feature which automatically runs an application contained on, e.g., a CD-ROM. When the CD-ROM is inserted into the drive, the operating system checks for a file named xe2x80x9cautorun.infxe2x80x9d in the root directory of the CD. Within the autorun.inf file is a pointer to an executable file named xe2x80x9cautorun.exexe2x80x9d which launches the software on the CD. Typically, the Autorun feature is used to launch software setup/install routines to install software contained on the CD to the hard drive. However, the Autorun feature is limited in that it does not configure a computer to run application software based on instructions contained on the removable media, nor does the Autorun feature have the ability to manage events such as ejection of the removable media, closing of the application running from the removable media, and storage of data files to the removable media.
However even with the above advancements, computers remain difficult for many people to use. For example, when a user turns on the computer, he or she is most often presented with the graphical user interface. At this point, it is up to the user to navigate to and launch the application software that he or she desires to use. Although this task seems relatively easy, it is not for many users as there is no standardization on where a particular application software is located on the computer. Clearly, the personal computer has failed to achieve the simplicity of other home appliances, which has prevented large numbers of people from accepting and using computers.
In view of the above, there is a need for a method and apparatus for facilitating the maintenance and use of a user""s data, application software and computer devices. Further, there is a need for a method and apparatus that performs these functions automatically with little or no input from the user in order to prevent accidental loss of data and to provide ease of application use. Such a need would be solved by an self-contained application stored on removable media that is adapted to automatically start devices or launch application software from the removable media or the computer""s hard drive upon insertion into the computer, while also saving the data files to the removable media or other predetermined location. The present invention provides such a solution.
In view of the above, the present invention, through one or more of its various aspects and/or embodiments is thus presented to accomplish many advantages, such as those noted below.
In accordance with the present invention, there is provided an application or service that resides on a computer that automatically, and without requiring any user intervention, recognizes the insertion of a piece of removable media. The removable media contains a task disk control file that contains all of the configuration information necessary to run participating applications from the removable media. In particular, the task disk control file contains three sections of configuration information as follows: pre-run, application run, and clean-up. The pre-run section configures registry information such that the operating system is aware of the path, environmental variables and command line to launch the participating application. Optionally, the pre-run section may specify files (e.g., executable files, DLLs, device drivers, etc.) that are to be copied to the hard drive to properly execute the participating application. The application run section instructs the operating system to load the participating application, which launches the participating application for use by a user. The clean-up section removes all registry information added by the pre-run section. Optionally, the clean-up section may remove from the hard drive the files copied thereto to execute the participating application.
After reading the task disk control file and configuring the computing device, the participating application is then launched for use by a user. Once the user is finished using the participating application, the removable disk is automatically ejected. In addition to monitoring for insertion of the removable media, events such as a completion of the self-contained application and a request to eject the media are monitored. When a completion event is encountered, all data files are saved, temporary files are deleted and configuration information is removed prior to the removable disk ejection. When an ejection event is encountered, the computing device is instructed to wait until the completion events are executed prior to actual ejection of the removable media.
The system of the present invention serves to greatly simplify the use and operation of computer application software, devices and peripherals because users are not required to have any knowledge of how to launch the application or start the devices and peripherals they wish to use other than such applications, devices and peripherals will be launched/started automatically upon insertion of the removable media. Other features of the invention are described below.